package tt.dz.order.vo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Title: 向主服务器发送的台帐信息
 * @author zhoutian
 * @date 2015-11-26
 */
public class AccountingInfo {
	// 订单号
	private String orderNo;
	/** 关联订单号 */
	private String relatedOrderNo;
	/** 订单类型	(0, "后付款") ， (1, "预付款")*/
	private Integer orderType;
	// 主服务编号
	private String serviceNo;
	//卡号
	private String cardNo;
	//卡类型 08 虚拟，06 实体卡  ，07  身份识别卡
	private String cardType;
	//卡上的余额，如果卡类型是"06 线下卡",需要OMS在第1次调用时传递卡上的余额
	private String payerBalance;
	// 原付款客户号.统付时和实际付款账户不一样
	private String originalPayer;
	// 实际付款客户号，统付时运营商id
	private String payer;
	// 实际收款客户号
	private String realReceiver;
	// 实际付款客户号，统付时运营商id
	private BigDecimal paymentAmount;
	// 支付类型码：1 第三方实时支付 2 统付 3 企业支付 4 电子钱包支付 5 代付 6 线下卡
	private Integer payTypeCode;
	// 支付状态: 1 已支付/支付成功 2 待支付 3 支付中 4 支付失败 5 支付超时
	private Integer payStateCode;
	// 第三方支付流水号
	private String thdPaySeq;
	// 第三方转账金额
	private BigDecimal thdPayAmount;
	// 第三方手续费
	private BigDecimal thdPoundage;
	// 第三方转账完成时间
	private String thdEndTime;
	// 第三方应答码
	private String responseCode;
	// 终端交易时间
	private Date tranTime;
	// 支付渠道编码
	private String channelCode;
	// 业务系统编号, 自主app:10001 乐视app:20001
	private String appId;

	private List<SubItem> tranSubVOList;

	public String getOrderNo() {
		return orderNo;
	}

	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	public String getRelatedOrderNo() {
		return relatedOrderNo;
	}

	public void setRelatedOrderNo(String relatedOrderNo) {
		this.relatedOrderNo = relatedOrderNo;
	}

	public String getServiceNo() {
		return serviceNo;
	}

	public void setServiceNo(String serviceNo) {
		this.serviceNo = serviceNo;
	}

	public String getCardNo() {
		return cardNo;
	}

	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}

	public String getCardType() {
		return cardType;
	}

	public void setCardType(String cardType) {
		this.cardType = cardType;
	}

	public String getPayerBalance() {
		return payerBalance;
	}

	public void setPayerBalance(String payerBalance) {
		this.payerBalance = payerBalance;
	}

	public String getOriginalPayer() {
		return originalPayer;
	}

	public void setOriginalPayer(String originalPayer) {
		this.originalPayer = originalPayer;
	}

	public String getPayer() {
		return payer;
	}

	public void setPayer(String payer) {
		this.payer = payer;
	}

	public String getRealReceiver() {
		return realReceiver;
	}

	public void setRealReceiver(String realReceiver) {
		this.realReceiver = realReceiver;
	}

	public BigDecimal getPaymentAmount() {
		return paymentAmount;
	}

	public void setPaymentAmount(BigDecimal paymentAmount) {
		this.paymentAmount = paymentAmount;
	}

	public Integer getPayTypeCode() {
		return payTypeCode;
	}

	public void setPayTypeCode(Integer payTypeCode) {
		this.payTypeCode = payTypeCode;
	}

	public Integer getPayStateCode() {
		return payStateCode;
	}

	public void setPayStateCode(Integer payStateCode) {
		this.payStateCode = payStateCode;
	}

	public String getThdPaySeq() {
		return thdPaySeq;
	}

	public void setThdPaySeq(String thdPaySeq) {
		this.thdPaySeq = thdPaySeq;
	}

	public BigDecimal getThdPayAmount() {
		return thdPayAmount;
	}

	public void setThdPayAmount(BigDecimal thdPayAmount) {
		this.thdPayAmount = thdPayAmount;
	}

	public BigDecimal getThdPoundage() {
		return thdPoundage;
	}

	public void setThdPoundage(BigDecimal thdPoundage) {
		this.thdPoundage = thdPoundage;
	}

	public String getThdEndTime() {
		return thdEndTime;
	}

	public void setThdEndTime(String thdEndTime) {
		this.thdEndTime = thdEndTime;
	}

	public String getResponseCode() {
		return responseCode;
	}

	public void setResponseCode(String responseCode) {
		this.responseCode = responseCode;
	}

	public Date getTranTime() {
		return tranTime;
	}

	public void setTranTime(Date tranTime) {
		this.tranTime = tranTime;
	}

	public String getChannelCode() {
		return channelCode;
	}

	public void setChannelCode(String channelCode) {
		this.channelCode = channelCode;
	}

	public String getAppId() {
		return appId;
	}

	public void setAppId(String appId) {
		this.appId = appId;
	}

	public List<SubItem> getTranSubVOList() {
		return tranSubVOList;
	}

	public void setTranSubVOList(List<SubItem> tranSubVOList) {
		this.tranSubVOList = tranSubVOList;
	}

	public Integer getOrderType() {
		return orderType;
	}

	public void setOrderType(Integer orderType) {
		this.orderType = orderType;
	}

	public AccountingInfo() {
	}

	public static class SubItem {
		// 服务编号
		private String serviceNo;
		// 服务提供方
		private String serviceProvider;
		// 是否成本类服务，1：是 0：否
		private Integer isCost;
		// 是否分润，1分润，0 不分
		private Integer isDivided;
		// 收款客户号
		private String receiver;
		// 收款客户号
		private BigDecimal paymentAmount;

		public String getServiceNo() {
			return serviceNo;
		}

		public void setServiceNo(String serviceNo) {
			this.serviceNo = serviceNo;
		}

		public String getServiceProvider() {
			return serviceProvider;
		}

		public void setServiceProvider(String serviceProvider) {
			this.serviceProvider = serviceProvider;
		}

		public Integer getIsCost() {
			return isCost;
		}

		public void setIsCost(Integer isCost) {
			this.isCost = isCost;
		}

		public Integer getIsDivided() {
			return isDivided;
		}

		public void setIsDivided(Integer isDivided) {
			this.isDivided = isDivided;
		}

		public String getReceiver() {
			return receiver;
		}

		public void setReceiver(String receiver) {
			this.receiver = receiver;
		}

		public BigDecimal getPaymentAmount() {
			return paymentAmount;
		}

		public void setPaymentAmount(BigDecimal paymentAmount) {
			this.paymentAmount = paymentAmount;
		}

		public SubItem() {
		}
	}
}
